package com.finance.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.time.LocalDateTime;

/**
 * 卡充值数据实体类
 * @author finance
 */
@Data
@TableName("ods_card_recharge")
@ApiModel(description = "卡充值数据")
public class CardRecharge {
    
    /**
     * 主键ID
     */
    @TableId(type = IdType.AUTO)
    @ApiModelProperty(value = "主键ID")
    private Long id;
    
    /**
     * 卡充值/续费时间（购票时间）
     */
    @ApiModelProperty(value = "卡充值/续费时间（购票时间）", required = true)
    private LocalDateTime rechargeTime;
    
    /**
     * 充值/续费影城名称
     */
    @ApiModelProperty(value = "充值/续费影城名称", required = true)
    private String cinemaName;
    
    /**
     * 影城ID
     */
    @ApiModelProperty(value = "影城ID", required = true)
    private String cinemaId;
    
    /**
     * 充值/续费影城编码
     */
    @ApiModelProperty(value = "充值/续费影城编码", required = true)
    private String cinemaCode;
    
    /**
     * 充值/续费影城所属区域
     */
    @ApiModelProperty(value = "充值/续费影城所属区域", required = true)
    private String cinemaArea;
    
    /**
     * 充值订单号
     */
    @ApiModelProperty(value = "充值订单号", required = true)
    private String orderNo;
    
    /**
     * 充值卡号
     */
    @ApiModelProperty(value = "充值卡号", required = true)
    private String cardNo;
    
    /**
     * 卡类型编码
     */
    @ApiModelProperty(value = "卡类型编码", required = true)
    private String cardTypeCode;
    
    /**
     * 卡类型，例如：储值卡
     */
    @ApiModelProperty(value = "卡类型，例如：储值卡", required = true)
    private String cardType;
    
    /**
     * 卡政策编码
     */
    @ApiModelProperty(value = "卡政策编码", required = true)
    private String cardPolicyCode;
    
    /**
     * 系统内对应卡政策，例如：钻石会员卡
     */
    @ApiModelProperty(value = "系统内对应卡政策，例如：钻石会员卡", required = true)
    private String cardPolicy;
    
    /**
     * 充值金额，单位：分
     */
    @ApiModelProperty(value = "充值金额，单位：分", required = true)
    private Long rechargeAmount;
    
    /**
     * 销售方式，例如：零售
     */
    @ApiModelProperty(value = "销售方式，例如：零售", required = true)
    private String salesMethod;
    
    /**
     * 发卡面值，单位：分
     */
    @ApiModelProperty(value = "发卡面值，单位：分", required = true)
    private Long cardFaceValue;
    
    /**
     * 支付后卡余额，单位：分
     */
    @ApiModelProperty(value = "支付后卡余额，单位：分", required = true)
    private Long cardBalance;
    
    /**
     * 支付方式编码
     */
    @ApiModelProperty(value = "支付方式编码", required = true)
    private String paymentToolCode;
    
    /**
     * 支付方式，例如：现金，微信扫码支付
     */
    @ApiModelProperty(value = "支付方式，例如：现金，微信扫码支付", required = true)
    private String paymentTool;
    
    /**
     * 支付渠道，例如：POS端渠道
     */
    @ApiModelProperty(value = "支付渠道，例如：POS端渠道", required = true)
    private String paymentChannel;
    
    /**
     * 支付渠道编码
     */
    @ApiModelProperty(value = "支付渠道编码", required = true)
    private String paymentChannelCode;
    
    /**
     * 操作员
     */
    @ApiModelProperty(value = "操作员")
    private String operator;
    
    /**
     * 操作员编码
     */
    @ApiModelProperty(value = "操作员编码")
    private String operatorCode;
    
    /**
     * 发卡影城名称
     */
    @ApiModelProperty(value = "发卡影城名称", required = true)
    private String issuingCinemaName;
    
    /**
     * 发卡影城编码
     */
    @ApiModelProperty(value = "发卡影城编码", required = true)
    private String issuingCinemaCode;
    
    /**
     * 发卡影城所属区域
     */
    @ApiModelProperty(value = "发卡影城所属区域", required = true)
    private String issuingCinemaArea;
    
    /**
     * 类型：充值，续费1=首充，2=续充，3=负充，4=退充
     */
    @ApiModelProperty(value = "类型：充值，续费1=首充，2=续充，3=负充，4=退充", required = true)
    private Integer type;
    
    /**
     * 发卡影城所属区域编码
     */
    @ApiModelProperty(value = "发卡影城所属区域编码", required = true)
    private String issuingCinemaAreaCode;
    
    /**
     * 充值/续费影城所属区域编码
     */
    @ApiModelProperty(value = "充值/续费影城所属区域编码", required = true)
    private String rechargeCinemaAreaCode;
    
    /**
     * 会员ID
     */
    @ApiModelProperty(value = "会员ID", required = true)
    private String memberId;
    
    /**
     * 商户订单号
     */
    @ApiModelProperty(value = "商户订单号")
    private String merchantOrderNo;
    
    /**
     * 第三方支付流水号
     */
    @ApiModelProperty(value = "第三方支付流水号")
    private String thirdPartyPaymentNo;

    /**
     * 流向客户名称
     */
    @ApiModelProperty(value = "流向客户名称")
    private String flowCustomerName;

    /**
     * 流向客户外部编码
     */
    @ApiModelProperty(value = "流向客户外部编码")
    private String flowCustomerCode;

    /**
     * 数据所属日期
     */
    @ApiModelProperty(value = "数据所属日期")
    private String searchDate;
} 